<?php
	require_once dirname(__FILE__) . '/LoginView.php';
	require_once dirname(__FILE__) . '/LoginHandler.php';
	require_once dirname(__FILE__) . '/../common/Database.php';
	require_once dirname(__FILE__) . '/../common/DBConfig.php';
	
/*
 * Controller för inloggningsfunktionalitet
 */
class LoginController {
	private $dataBase;
	private $loginHandler;
	
	// Funktion för att hantera flödet för inloggningsfunktionaliteten
	public function doController() {
		$lv = new LoginView();
				
		if ($lv->TriedToLogIn() || $lv->HasUserCookie() ) {
			$this->loginHandler->DoLogin($lv->GetUserName(), $lv->GetPassword());
						
			if ($lv->TriedToLogIn() && $this->loginHandler->IsLoggedIn()) {
				if ($lv->UseCookie()) {
					$lv->SetCookie($lv->GetUserName(), $lv->GetPassword());
				}
				
				$lv->ReloadPage();
			}
		}
		
		if ($lv->TriedToLogOut()) {
			$this->loginHandler->DoLogout();
			$lv->ClearCookie();
			$lv->ReloadPage();
		}
		
		if ($this->loginHandler->IsLoggedIn()) {
			$html = $lv->DoLogoutBox($this->loginHandler->GetLoggedInUser());
		} else {
			$previoutLoginFailed = $lv->TriedToLogIn();
			$html = $lv->DoLoginBox($previoutLoginFailed);
		}		
		return $html;
	}
	
	public function __construct(Database $dataBase, LoginHandler $loginHandler) {
		$this->dataBase = $dataBase;	
		$this->loginHandler	= $loginHandler;
	}
}
